import JSZip from "jszip";
import { saveAs } from "file-saver";

/**
 * 导出压缩包
 * @param {Array} files - 文件列表，每个文件可以是一个 File 对象或 { name: string, content: string } 对象
 * @param {string} zipName - 生成的压缩包文件名
 */
export async function exportZip(files, zipName = "exported_files.zip") {
    const zip = new JSZip();

    // 遍历文件列表，添加文件到压缩包
    for (const file of files) {
        if (file instanceof File) {
            // 如果是 File 对象，直接添加
            zip.file(file.name, file);
        } else if (typeof file === "object" && file.name && file.content) {
            // 如果是 { name, content } 对象，添加内容
            zip.file(file.name, file.content);
        } else {
            console.warn("Invalid file format:", file);
        }
    }

    // 生成压缩包内容
    const content = await zip.generateAsync({ type: "blob" });

    // 保存压缩包
    saveAs(content, zipName);
}